// 封装一个Vue的构造函数
function Vue(options){
    this._data = options.data

    // 数据代理，把_data中的属性取出来，一个个放在vue实例上
    for (let key of Object.keys(this._data)){
        Object.defineProperty(this,key,{
            get(){
                return this._data[key]
            },
            set(newVal){
                this._data[key] = newVal
            }
        })
    }
}

// 实例化
const vm = new Vue({
    data:{
        count:1,
        course:{
            type:'easy',
            name:'html'
        }
    }
})

console.log(vm);